//手写promise.all
// Promise.myAll = function (promises) {
//   return new Promise((resolve, reject) => {
//     let results = [];
//     let pending = promises.length;
//     if (pending === 0) {
//       resolve(results);
//     }
//     promises.forEach((promise, index) => {
//       promise.then(
//         (res) => {
//           results[index] = res;
//           pending--;
//           if (pending === 0) {
//             resolve(results);
//           }
//         },
//         (err) => {
//           reject(err);
//         },
//       );
//     });
//   });
// };

//测试
// let promise1 = new Promise((resolve, reject) => {
//   setTimeout(() => {
//     resolve("promise1");
//   }, 1000);
// });

// let promise2 = new Promise((resolve, reject) => {
//   setTimeout(() => {
//     reject("失败2");
//   }, 1000);
// });
//
// let promise3 = new Promise((resolve, reject) => {
//   setTimeout(() => {
//     reject("失败3");
//   }, 1000);
// });
// Promise.myAll([promise1, promise2, promise3]).then((res) => {
//   console.log(res);
// });
//js消息队列和事件循环
console.log("start");
setTimeout(() => {
  console.log("setTimeout1");
}, 0);
function req(r) {
  return new Promise((resolve, reject) => {
    resolve(r);
  }).then((res)=>{
    console.log(res);
  });
}

async  function A(){
  await req("456");
  console.log("AAA");
}
async  function B(){
  await A();
  console.log("BBB");
}
console.log("x")
B();
console.log("y")


//宏队列

//微队列
//打印：start,x, y,456 AAA BBB setTimeout1
